import { reactive } from 'vue'

export default reactive([
  {
    name: 'Basic 基础',
    directory: 'basic',
    children: [
      {
        name: 'Scene',
        description: '场景设置',
        path: '/demo/basic/01-basicScene'
      },
      {
        name: 'Camera',
        description: '相机设置',
        path: '/demo/basic/02-camerasLookat'
      }
    ]
  },
  {
    name: 'Light 光源',
    directory: 'light',
    children: [
      {
        name: 'AmbientLight',
        description: '环境光效果',
        path: '/demo/light/ambientLight'
      },
      {
        name: 'PointLight',
        description: '点光',
        path: '/demo/light/pointLight'
      },
      {
        name: 'SpotLight',
        description: '聚光灯光源',
        path: '/demo/light/spotLight'
      },
      {
        name: 'DirectinalLight',
        description: '平行光(方向光)',
        path: '/demo/light/directinalLight'
      },
      {
        name: 'AreaLight',
        description: '平面光效果',
        path: '/demo/light/areaLight'
      },
      {
        name: 'HemisphereLight',
        description: '半球光光源',
        path: '/demo/light/hemisphereLight'
      },
      {
        name: 'LensFlare',
        description: '镜头眩光效果',
        path: '/demo/light/lensFlare'
      },
    ]
  },
  {
    name: 'Material 材质',
    directory: 'material',
    children: [
      {
        name: 'MeshBasicMaterial',
        description: '网格基础材质',
        path: '/demo/material/01-meshBasicMaterial'
      },
      {
        name: 'MeshDepthMaterial',
        description: '网格深度材质',
        path: '/demo/material/02-meshDepthMaterial'
      },
      {
        name: 'CombinedMaterial',
        description: '联合材质',
        path: '/demo/material/03-combinedMaterial'
      },
      {
        name: 'MeshNormalMaterial',
        description: '网格法向材质',
        path: '/demo/material/04-meshNormalMaterial'
      },
      {
        name: 'MeshNormalMaterial',
        description: '网格法向材质-定制材质',
        path: '/demo/material/05-meshFaceMaterial'
      },
      {
        name: 'MeshLambertMaterial',
        description: '网格朗伯材质',
        path: '/demo/material/06-meshLambertMaterial'
      },
      {
        name: 'MeshPhongMaterial',
        description: '网格 Phong 材质',
        path: '/demo/material/07-meshPhongMaterial'
      },
      {
        name: 'MeshToolMaterial',
        description: '网格xx材质',
        path: '/demo/material/08-meshToolMaterial'
      },
      {
        name: 'MeshStandardMaterial',
        description: '标准网格材质',
        path: '/demo/material/09-meshStandardMaterial'
      },
      {
        name: 'MeshPhysicalMaterial',
        description: '物理网格材质',
        path: '/demo/material/10-meshPhysicalMaterial'
      }
    ]
  },
  {
    name: 'Line 线',
    directory: 'line',
    children: [
      {
        name: 'LineBasicMaterial',
        description: '基础线条材质',
        path: '/demo/line/01-lineBasicMaterial'
      },
      {
        name: 'LineDashedMaterial',
        description: '虚线材质',
        path: '/demo/line/02-lineDashedMaterial'
      },
      {
        name: 'EllipseCurve',
        description: '椭圆曲线',
        path: '/demo/line/03-ellipseCurve'
      },
      {
        name: 'LineCurve3',
        description: '三维线段曲线',
        path: '/demo/line/04-lineCurve3'
      },
      {
        name: 'CubicBezierCurve3',
        description: '三维三次贝塞尔曲线',
        path: '/demo/line/05-cubicBezierCurve3'
      },
      {
        name: 'Line Trail',
        description: '光线痕迹',
        path: '/demo/line/06-lineTrail'
      },
      {
        name: 'Line Trail',
        description: '多光线痕迹',
        path: '/demo/line/07-lineTrailPro'
      },
      {
        name: 'Gradient',
        description: '渐变效果',
        path: '/demo/line/08-gradient'
      },
    ]
  },
  {
    name: 'Geometry 几何',
    directory: 'geometry',
    children: [
      {
        name: '2D 平面几何',
        directory: '2D',
        children: [
          {
            name: 'Plane',
            description: '平面几何体',
            path: '/demo/geometry/2D/01-plane'
          },
          {
            name: 'CircleGeometry',
            description: '圆形(缓冲)几何体',
            path: '/demo/geometry/2D/02-circleGeometry'
          },
          {
            name: 'ShapeGeometry',
            description: '形状几何体',
            path: '/demo/geometry/2D/03-shapeGeometry'
          },
        ]
      },
      {
        name: '3D 几何',
        children: [
          {
            name: 'Preview',
            description: '自带几何预览',
            path: '/demo/geometry/3D/01-geometry'
          },
          {
            name: 'BoxGeometry',
            description: '立方几何体',
            path: '/demo/geometry/3D/02-boxGeometry'
          },
          {
            name: 'SphereGeometry',
            description: '球几何体',
            path: '/demo/geometry/3D/03-sphereGeometry'
          },
          {
            name: 'WireframeGeometry',
            description: '网格几何体',
            path: '/demo/geometry/3D/04-wireframeGeometry'
          },
          {
            name: 'Custom Geometry',
            description: '自定义几何',
            path: '/demo/geometry/3D/99-customGeometry'
          },
        ]
      },
      {
        name: 'Pro 高级几何',
        directory: 'pro',
        children: [
          {
            name: 'ConvexGeometry',
            description: '凸包几何体',
            path: '/demo/geometry/pro/01-convexBufferGeometry'
          },
          {
            name: 'LatheGeometry',
            description: '车削几何体',
            path: '/demo/geometry/pro/02-latheGeometry'
          },
          {
            name: 'ExtrudeGeometry',
            description: '挤压几何体',
            path: '/demo/geometry/pro/03-extrudeGeometry'
          },
          {
            name: 'TubeGeometry',
            description: '管道几何体',
            path: '/demo/geometry/pro/04-tubeGeometry'
          },
          {
            name: 'ParametricGeometry',
            description: '参数化几何体',
            path: '/demo/geometry/pro/05-parametricGeometry'
          },
          {
            name: 'TubeGeometry Animate',
            description: '管道几何体贴图动画',
            path: '/demo/geometry/pro/06-tubeGeometry'
          },
        ]
      },
    ]
  },
  {
    name: 'Font (字体)',
    directory: 'font',
    children: [
      {
        name: 'Basic',
        description: '基础',
        path: '/demo/font/01-basic'
      }
    ]
  },
  {
    name: 'Sprite 精灵',
    directory: 'sprite',
    children: [
      {
        name: '基础',
        directory: 'basic',
        children: [
          {
            name: 'Basic',
            description: '基础',
            path: '/demo/sprite/basic/01-sprite'
          },
          {
            name: 'Point Sprite',
            description: '点状粒子',
            path: '/demo/sprite/basic/02-point-sprite'
          },
          {
            name: 'Image Sprite',
            description: '图片粒子',
            path: '/demo/sprite/basic/03-image-sprite'
          },
          {
            name: 'Sprite Text Label',
            description: '文字浮动标签',
            path: '/demo/sprite/basic/04-spriteTextLabel'
          },
        ]
      },
      {
        name: 'CSS3D Sprite',
        directory: 'css3d',
        children: [
          {
            name: 'DOM in 3D',
            description: '使用 DOM 插入 3D',
            path: '/demo/sprite/css3d/01-dom'
          }
        ]
      },
      {
        name: 'Images Points',
        description: '多图片粒子',
        path: '/demo/sprite/04-images-points'
      },
      {
        name: 'Images Sprite',
        description: '多图片精灵',
        path: '/demo/sprite/05-images-sprite'
      },
      {
        name: 'Images Sprite2',
        description: '多图片精灵2',
        path: '/demo/sprite/06-images-sprite'
      },
      {
        name: 'Model Particle',
        description: '几何粒子',
        path: '/demo/sprite/07-particle-system-from-model'
      },
    ]
  },
  {
    name: 'Group 组与组合',
    directory: 'group',
    children: [
      {
        name: 'Basic',
        description: '基础组',
        path: '/demo/group/01-basic'
      },
      {
        name: 'Merging',
        description: '基础组',
        path: '/demo/group/02-merging'
      },
      {
        name: 'Save & Load Geometry',
        description: '保存和加载几何体',
        path: '/demo/group/03-saveLoadGeometry'
      },
      {
        name: 'Save & Load Scene',
        description: '保存和加载场景',
        path: '/demo/group/04-saveLoadScene'
      },
    ]
  },
  {
    name: 'Models 模型',
    directory: 'models',
    children: [
      {
        name: 'OBJ',
        description: 'OBJ格式模型',
        path: '/demo/models/01-Obj'
      },
      {
        name: 'OBJ & MTL',
        description: 'OBJ&MTL格式模型',
        path: '/demo/models/02-ObjMTL'
      },
    ]
  },
  {
    name: 'Animation 动画',
    directory: 'animation',
    children: [
      {
        name: 'Select',
        description: '选择功能',
        path: '/demo/animation/01-selectObj'
      },
      {
        name: 'Control 控件',
        directory: 'controls',
        children: [
          {
            name: 'TrackballControls',
            description: '轨迹球控件',
            path: '/demo/animation/controls/01-trackballControls'
          },
          {
            name: 'flyControls',
            description: '飞行控制器',
            path: '/demo/animation/controls/02-flyControls'
          },
          {
            name: 'FirstPersonControls',
            description: '第一人称控制器',
            path: '/demo/animation/controls/03-firstPersonControls'
          },
          {
            name: 'OrbitControls',
            description: '第一人称控制器',
            path: '/demo/animation/controls/04-orbitControls'
          },
          {
            name: 'PathControls',
            description: '模拟路径控制器',
            path: '/demo/animation/controls/05-pathControls'
          },
        ]
      },
      {
        name: '变形',
        directory: 'morph',
        children: [
          {
            name: 'Morph Targets',
            description: '变形动画',
            path: '/demo/animation/morph/01-morphTargets'
          }
        ]
      },
      {
        name: 'Bones 骨骼',
        directory: 'bones',
        children: [
          {
            name: 'Bones Browser',
            description: '骨骼预览',
            path: '/demo/animation/bones/01-bonesBrowser'
          },
          {
            name: 'Collada',
            description: 'collada模型动画',
            path: '/demo/animation/bones/02-collada'
          },
          {
            name: 'MD2',
            description: 'MD2模型动画',
            path: '/demo/animation/bones/03-md2'
          },
          {
            name: 'FBX',
            description: '动作捕捉模型动画',
            path: '/demo/animation/bones/04-fbx'
          },
          {
            name: 'BVHLoader',
            description: '显示骨骼动画',
            path: '/demo/animation/bones/05-BVHLoader'
          },
        ]
      }
    ]
  },
  {
    name: 'Shader 着色器',
    directory: 'shader',
    children: [
      {
        name: 'Basic',
        directory: 'basic',
        children: [
          {
            name: 'Color',
            description: '单色渲染',
            path: '/demo/shader/basic/01-basic'
          },
          {
            name: 'Uniforms',
            description: '统一值',
            path: '/demo/shader/basic/02-uniforms'
          },
          {
            name: 'gl_FragCoord',
            description: '统一值',
            path: '/demo/shader/basic/03-glFragCoord'
          },
          {
            name: 'Function',
            description: '函数使用',
            path: '/demo/shader/basic/04-function'
          },
          {
            name: 'Step',
            description: '阈值判断',
            path: '/demo/shader/basic/05-step'
          },
          {
            name: 'SmoothStep',
            description: '范围差值',
            path: '/demo/shader/basic/06-smoothstep'
          },
          {
            name: 'Mix',
            description: '混合(混合2种颜色变化)',
            path: '/demo/shader/basic/07-mix'
          },
          {
            name: 'HSB',
            description: 'rgb2hsv hsv2rgb功能',
            path: '/demo/shader/basic/08-HSB'
          },
          {
            name: 'Clip',
            description: '使用透明度剪切功能',
            path: '/demo/shader/basic/09-clip'
          },
        ]
      },
      {
        name: 'Shapes 形状',
        directory: 'shapes',
        children: [
          {
            name: 'Rectangle',
            description: '长方形',
            path: '/demo/shader/shapes/01-rectangle'
          },
          {
            name: 'Circles',
            description: '渐变圆形',
            path: '/demo/shader/shapes/02-circles'
          },
          {
            name: 'Circles',
            description: '圆形',
            path: '/demo/shader/shapes/03-circles'
          },
          {
            name: 'Polygon',
            description: '多边形',
            path: '/demo/shader/shapes/04-polygon'
          },
        ]
      },
      {
        name: 'Run Line',
        description: '旋转圆环',
        path: '/demo/shader/02-runLine'
      },
      {
        name: 'Gradient Color',
        description: '渐变色',
        path: '/demo/shader/03-gradientColor'
      },
      {
        name: 'Fly Line',
        description: '飞线',
        path: '/demo/shader/05-flyLine'
      },
      {
        name: 'Light Line',
        description: '光线',
        path: '/demo/shader/06-lightLine'
      },
      {
        name: 'Rainbow',
        description: '简单彩虹',
        path: '/demo/shader/07-rainbox'
      },
      {
        name: 'Banner',
        description: '旗帜',
        path: '/demo/shader/08-banner'
      },
      {
        name: 'Rubik\'s Cube',
        description: '魔方',
        path: '/demo/shader/09-rubiksCube'
      },
    ]
  },
  {
    name: 'Textures 纹理',
    directory: 'textures',
    children: [
      {
        name: 'Basic',
        description: '基础',
        path: '/demo/textures/01-basic'
      },
      {
        name: 'Repeat Wrapping',
        description: '重复映射',
        path: '/demo/textures/15-repeatWrapping'
      },
      {
        name: 'DDS',
        description: 'DirectDraw Surface格式纹理',
        path: '/demo/textures/02-dds'
      },
      {
        name: 'PVR',
        description: 'Power VP纹理(IOS支持)',
        path: '/demo/textures/03-pvr'
      },
      {
        name: 'TGA',
        description: 'Targa纹理',
        path: '/demo/textures/04-tga'
      },
      {
        name: 'KTX',
        description: 'Khronos Texture(KTX)纹理',
        path: '/demo/textures/05-ktx'
      },
      {
        name: 'HDR 高动态范围图像',
        directory: 'HDR',
        children: [
          {
            name: 'EXR',
            description: 'EXR 图像纹理',
            path: '/demo/textures/HDR/01-exr'
          },
          {
            name: 'RGBE',
            description: 'RGBE 图像纹理',
            path: '/demo/textures/HDR/02-hdr'
          },
        ]
      },
      {
        name: 'Bump Map',
        description: '凹凸贴图纹理',
        path: '/demo/textures/06-bumpMap'
      },
      {
        name: 'Normal Map',
        description: '法向贴图凹凸贴图纹理',
        path: '/demo/textures/07-normalMap'
      },
      {
        name: 'Displacement Map',
        description: '移位贴图改变顶点位置',
        path: '/demo/textures/08-displacementMap'
      },
      {
        name: '🚧 Ao Map',
        description: '环境光遮挡贴图阴影',
        path: '/demo/textures/09-aoMap'
      },
      {
        name: 'Light Map',
        description: '光照贴图阴影',
        path: '/demo/textures/10-lightMap'
      },
      {
        name: 'Metal Roughness Map',
        description: '金属光泽',
        path: '/demo/textures/11-metalRoughnessMap' 
      },
      {
        name: 'Alpha Map',
        description: '透明贴图',
        path: '/demo/textures/12-alphaMap' 
      },
      {
        name: 'Emissive Map',
        description: '自发光贴图',
        path: '/demo/textures/13-emissiveMap' 
      },
      {
        name: 'Specular Map',
        description: '高光贴图',
        path: '/demo/textures/14-specularMap' 
      },
      {
        name: 'Mirror 镜面效果',
        directory: 'mirror',
        children: [
          {
            name: 'Env Map',
            description: '静态环境贴图创建伪镜面效果',
            path: '/demo/textures/mirror/15-envMap' 
          },
          {
            name: 'Shading Physical',
            description: '动态环境贴图创建伪镜面效果',
            path: '/demo/textures/mirror/02-shadingPhysical' 
          },
        ]
      },
      {
        name: 'UV 贴图',
        directory: 'UV',
        children: [
          {
            name: 'UV Map',
            description: '定制 UV 映射',
            path: '/demo/textures/UV/01-uvMap'
          },
          {
            name: 'UV Face Map',
            description: '定制面 UV 映射',
            path: '/demo/textures/UV/02-uvMap'
          },
        ]
      },
      {
        name: 'Canvas Map',
        description: '使用Canvas为纹理',
        path: '/demo/textures/16-canvasMap'
      },
      {
        name: 'Videos 视频',
        directory: 'videos',
        children: [
          {
            name: 'Video',
            description: '使用视频',
            path: '/demo/textures/videos/01-mp4'
          },
          {
            name: 'Camera',
            description: '使用视频',
            path: '/demo/textures/videos/02-webcam'
          },
          {
            name: 'Glass Mirror',
            description: '使用摄像头镜面效果',
            path: '/demo/textures/videos/03-webcam'
          },
        ]
      }
    ]
  },
  {
    name: 'Renderer 渲染器',
    directory: 'renderer',
    children: [
      {
        name: 'CSS3DRenderer',
        description: 'CSS 3D 渲染器',
        path: '/demo/renderer/01-CSS3DRenderer'
      }
    ]
  },
  {
    name: 'Postprocessing 后期处理',
    directory: 'postprocessing',
    children: [
      {
        name: 'FilmPass',
        description: 'Film Pass 通道',
        path: '/demo/postprocessing/01-filmPass'
      },
      {
        name: 'Multi-channel Example',
        description: '多通道实例',
        path: '/demo/postprocessing/02-multiChannelExample'
      },
      {
        name: 'Multi-channel Example 2',
        description: '多通道实例2',
        path: '/demo/postprocessing/03-multiChannelExample2'
      },
      {
        name: 'Post Processing Masks',
        description: '掩膜的高级效果组合器',
        path: '/demo/postprocessing/04-postProcessingMasks'
      },
      {
        name: 'Bokeh',
        description: '背景虚化效果',
        path: '/demo/postprocessing/05-bokeh'
      },
      {
        name: 'Ambient Occlusion',
        description: '环境光遮蔽',
        path: '/demo/postprocessing/06-ambientOcclusion'
      },
      {
        name: 'Shader Pass Simple',
        description: '简单着色器通道',
        path: '/demo/postprocessing/07-shaderPassSimple'
      },
      {
        name: 'Shaderpass Custom',
        description: '自定义灰度着色器',
        path: '/demo/postprocessing/08-shaderpassCustom'
      },
    ]
  },
  {
    name: 'Physijs 物理引擎',
    directory: 'physijs',
    children: [
      {
        name: 'Falling Ball',
        description: '坠落的小球',
        path: '/demo/physijs/01-fallingBall'
      },
      {
        name: 'cannon',
        directory: 'cannon',
        children: [
          {
            name: 'basic',
            description: '模拟物体下落',
            path: '/demo/physijs/cannon/01-basic'
          }
        ]
      }
    ]
  },
  {
    name: 'Expand 扩展',
    directory: 'expand',
    children: [
      {
        name: 'THREE.MeshLine',
        directory: 'meshLine',
        children: [
          {
            name: 'basic',
            description: '模拟',
            path: '/demo/expand/meshLine/01-basic'
          }
        ]
      }
    ]
  },
  {
    name: 'Example 实例',
    directory: 'example',
    children: [
      {
        name: 'DiffuseBall',
        description: '扩散球',
        path: '/demo/example/01-diffuseBall'
      },
      {
        name: 'Gltf 动画',
        description: 'Gltf',
        path: '/demo/example/01-gltf'
      },
      {
        name: 'Factory',
        description: '工厂',
        path: '/demo/example/03-factory/index'
      },
      {
        name: 'Navigations',
        description: '导航功能',
        path: '/demo/example/04-navigation'
      },
    ]
  }
])